package br.com.advance.automacao.web.administrativo;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import org.primefaces.context.RequestContext;
import org.springframework.beans.factory.annotation.Autowired;

import br.com.advance.automacao.model.Turno;
import br.com.advance.automacao.services.TurnoService;
import br.com.advance.automacao.services.exceptions.ValidationException;
import br.com.advance.automacao.web.utils.BaseBean;

@ManagedBean
@ViewScoped
public class EditarTurnoMBean extends BaseBean {

	/**
	 *
	 */
	private static final long serialVersionUID = 4180491670576658298L;

	private static final Logger logger = Logger.getLogger(EditarTurnoMBean.class);

	@Autowired
	private TurnoService turnoService;

	private Turno turno;

	private String idTurno;

	public void initialize() {
		logger.info("initialize...");
	}

	protected boolean verificaUsuarioLogado() {
		return true;
	}

	public void initializeAfter() {
		logger.info("initialize...");
		if (StringUtils.isNotBlank(idTurno)) {
			turno = turnoService.buscarPorId(Long.parseLong(idTurno));
		} else {
			turno = new Turno();
		}
	}

	public void salvaTurno() {
		try {
			if (turno.getId() == null) {
				turnoService.criar(turno);
			} else {
				turnoService.atualizar(turno);
			}
		} catch (ValidationException e) {
			FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_WARN, e.getMessage(), null);
			FacesContext.getCurrentInstance().addMessage(null, message);
			return;
		}
		RequestContext.getCurrentInstance().closeDialog(null);
	}

	public void cancelaEdicaoTurno() {
		RequestContext.getCurrentInstance().closeDialog(null);
	}

	public Turno getTurno() {
		return turno;
	}

	public void setTurno(Turno turno) {
		this.turno = turno;
	}

	public String getIdTurno() {
		return idTurno;
	}

	public void setIdTurno(String idTurno) {
		this.idTurno = idTurno;
	}

}
